package com.navinfo.tripanalysis.common.pojo;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 车辆故障明细信息
 * @author hmc
 */
@Data
public class FaultInfo implements Serializable {


    /**
     * 故障类型，1：产生，2：消失
     */
    private int faultType;
    /**
     * 车速,扩大100倍
     */
    private int subSpeed;
    /**
     * 油门开度百分比，单位%，扩展100倍
     */
    private int accelerator;
    /**
     * 制动信号状态，0关，1开，扩展100倍
     */
    private int brake;
    /**
     * 发动机转速，单位rpm转每分钟，扩展100倍
     */
    private int rotation;
    /**
     * 发动机涡轮增压压力，扩展100倍
     */
    private int engineTurbochargedPressure;
    /**
     * 进气压力，扩展100倍
     */
    private int engineIntakePressure;
    /**
     * 发动机排气温度，扩展100倍
     */
    private  int engineExhaustTemperature;
    /**
     * 发动机水温，扩展100倍
     */
    private  int engineCoolantTemperature;
    /**
     * 油门变化率，扩展100倍
     */
    private  int accelerationRate;
    /**
     * 挡位，扩展100倍
     */
    private  int gear;
    /**
     * 发动机输出扭矩，扩大100倍
     */
    private  int engineOutputTorque;
    /**
     * 载荷，扩大100倍
     */
    private  int load;
    /**
     * 发动机负荷，扩大100倍
     */
    private  int engineLoad;
    /**
     * 车辆加速度，扩大100倍
     */
    private  int vehicleAcceleration;
    /**
     * 车辆减速度，扩大100倍
     */
    private  int vehicleSpeedReduction;
    /**
     * 故障码列表
     */
    private  int faultCodeCount;

    /**
     * 故障标记
     */
    private List<FaultItem> faultItemList;

    public static class FaultItem {
        /**
         * 源地址，故障码属于哪个系统
         */
        private int faultAddr;
        /**
         * 故障码，业务端匹配
         */
        private int SPN;
        /**
         * 故障码，业务端匹配
         */
        private int FMI;


        public int getFaultAddr() {
            return faultAddr;
        }

        public void setFaultAddr(int faultAddr) {
            this.faultAddr = faultAddr;
        }

        public int getSpn() {
            return SPN;
        }

        public void setSpn(int SPN) {
            this.SPN = SPN;
        }

        public int getFmi() { return FMI; }

        public void setFmi(int FMI) {
            this.FMI = FMI;
        }
    }

}
